﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BL = class_BL;
using EN = class_Entidad;
using UT = class_Util.valor_constantecs;
using System.Data;

namespace WebMenu.Pagina.Proyecto
{
    public partial class frmProyectoRecetaEdicion : System.Web.UI.Page
    {
        public void cargarDepartamento()
        {
            List<EN.UBIGEO_EN> lista = new List<EN.UBIGEO_EN>();
            EN.PARAM_UBIGEO_EN objItem = new EN.PARAM_UBIGEO_EN();
            objItem.NIVEL = 1;
            objItem.COD_UBIGEO = "";

            lista = BL.ITEMS_BL.listaUbigeo(objItem);
            foreach (var item in lista)
            {
                ddlDepartamento.Items.Add(new ListItem(Convert.ToString(item.DESCRIPCION), Convert.ToString(item.COD_UBIGEO)));
                ddlDepRegistro.Items.Add(new ListItem(Convert.ToString(item.DESCRIPCION), Convert.ToString(item.COD_UBIGEO)));
            }
        }

        public void cargarProvincia()
        {
            List<EN.UBIGEO_EN> lista = new List<EN.UBIGEO_EN>();
            EN.PARAM_UBIGEO_EN objItem = new EN.PARAM_UBIGEO_EN();
            objItem.NIVEL = 2;
            objItem.COD_UBIGEO = ddlDepartamento.SelectedValue;

            lista = BL.ITEMS_BL.listaUbigeo(objItem);
            foreach (var item in lista)
            {
                ddlProvincia.Items.Add(new ListItem(Convert.ToString(item.DESCRIPCION), Convert.ToString(item.COD_UBIGEO)));
            }
        }

        public void cargarTipoPlato()
        {
            List<EN.ITEMS_EN> lista = new List<EN.ITEMS_EN>();
            EN.ITEMS_EN objItem = new EN.ITEMS_EN();
            objItem.ID_ITEMS = 0;
            objItem.DESC_ITEMS = "";
            objItem.ID_PADRE = 3;

            lista = BL.ITEMS_BL.ListaITEMSGrupo(objItem);
            foreach (var item in lista)
            {
                ddlTipo.Items.Add(new ListItem(Convert.ToString(item.DESC_ITEMS), Convert.ToString(item.ID_ITEMS)));
            }
        }

        public void cargarClasePlato()
        {
            List<EN.ITEMS_EN> lista = new List<EN.ITEMS_EN>();
            EN.ITEMS_EN objItem = new EN.ITEMS_EN();
            objItem.ID_ITEMS = 0;
            objItem.DESC_ITEMS = "";
            objItem.ID_PADRE = 7;

            lista = BL.ITEMS_BL.ListaITEMSGrupo(objItem);
            foreach (var item in lista)
            {
                ddlClase.Items.Add(new ListItem(Convert.ToString(item.DESC_ITEMS), Convert.ToString(item.ID_ITEMS)));
            }
        }

        public void ListaReceta()
        {
            if (ddlTipo.SelectedValue != "-2" && ddlClase.SelectedValue != "-2")
            {
                List<EN.LST_RECETA_EN> lista = new List<EN.LST_RECETA_EN>();
                EN.PARAM_RECETA_EN param = new EN.PARAM_RECETA_EN();
                param.ID_RECETA = 0;
                param.TIPO_PLATO = Convert.ToInt32(ddlTipo.SelectedValue);
                param.CLASE_PLATO = Convert.ToInt32(ddlClase.SelectedValue);
                param.NOMBRE_REC = "";
                lista = BL.RECETA_BL.listaReceta(param);
                foreach (var item in lista)
                {
                    if (item.EST_RECETA != 0)
                        ddlReceta.Items.Add(new ListItem(Convert.ToString(item.NOMBRE_REC), Convert.ToString(item.ID_RECETA)));
                }
            }
            else
            {
                ddlReceta.Items.Clear();
                ddlReceta.Items.Add(new ListItem(UT.desSeleccionar, UT.valSeleccionar));
            }
        }

        public void ListaIngrediente()
        {
            EN.PARAM_RECETA_EN param1 = new EN.PARAM_RECETA_EN();
            List<EN.LST_RECETA_INGREDIENTE_EN> lstIngrediente = new List<EN.LST_RECETA_INGREDIENTE_EN>();
            param1.ID_RECETA = Convert.ToDecimal(ddlReceta.SelectedValue);
            param1.ID_PADTPROD = 1;
            lstIngrediente = BL.RECETA_BL.ListaIngrediente(param1);

            DataTable tbIngrediente = new DataTable();
            DataRow fila;
            tbIngrediente = (DataTable)ViewState["Ingrediente"];


            for (int i = 0; i < lstIngrediente.Count; i++)
            {
                fila = tbIngrediente.NewRow();
                fila["ID_TPROD"] = lstIngrediente[i].ID_TPROD;
                fila["ID_PRODUCTO"] = lstIngrediente[i].ID_PRODUCTO;
                fila["ID_PROVEEDOR"] = -2;
                fila["ID_PRECIO"] = 0;
                fila["DESC_TPROD"] = lstIngrediente[i].DESC_TPROD.ToString();
                fila["NOM_PROD"] = lstIngrediente[i].NOM_PROD.ToString();
                fila["PRECIO_CIGV"] = 0.00;
                fila["PRECIO_CIGV_VIG"] = 0.00;
                tbIngrediente.Rows.Add(fila);
            }
            ViewState["Ingrediente"] = tbIngrediente;
            gvProducto.DataSource = tbIngrediente;
            gvProducto.DataBind();

            hdIdProv.Value = "0";
            hdIdPrecio.Value = "0";
            hdPrecio.Value = "0.00";
        }

        public void ListaCliente()
        {
            try
            {
                List<EN.CLIENTE_EN> lista = new List<EN.CLIENTE_EN>();
                EN.CLIENTE_EN param = new EN.CLIENTE_EN();
                param.ID_CLIENTE = 0;
                param.RAZON_SOCIAL = "";
                param.RUC = "";
                if (ddlDepartamento.SelectedValue != "-2" && ddlProvincia.SelectedValue != "-2")
                {
                    param.UBIGEO = ddlDepartamento.SelectedValue + ddlProvincia.SelectedValue + "00";
                }
                else
                {
                    param.UBIGEO = "-2";
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Popup", "alert('Debe de seleccionar un departamento y provincia.');", true);
                    return;
                }

                lista = BL.CLIENTE_BL.ListaCliente(param);
                foreach (var item in lista)
                {
                    ddlCliente.Items.Add(new ListItem(Convert.ToString(item.RAZON_SOCIAL), Convert.ToString(item.ID_CLIENTE)));
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public List<EN.PROVEEDOR_EN> cargarProvedor(int ID_TPROD)
        {
            EN.PARAM_PREC_PROV_PROD_EN param = new EN.PARAM_PREC_PROV_PROD_EN();
            List<EN.PROVEEDOR_EN> Lista = new List<EN.PROVEEDOR_EN>();
            List<EN.PROVEEDOR_EN> Lista2 = new List<EN.PROVEEDOR_EN>();

            try
            {
                for (int j = 0; j < 2; j++)
                {

                    if (j == 0)
                    {
                        if ((ddlDepartamento.SelectedValue + ddlProvincia.SelectedValue + "00") != "0150100")
                        {
                            param.vConsulta = 1;
                            param.vCOD_UBIGEO = "0150100"; // debe de tomar la info de Depa y Prov
                            param.vID_TPROD = ID_TPROD;
                            param.vID_PROVEEDOR = 0;
                            param.vID_PRODUCTO = 0;
                        }
                        else
                        { j = 1; }
                    }
                    if (j == 1)
                    {
                        param.vConsulta = 1;
                        param.vCOD_UBIGEO = ddlDepartamento.SelectedValue + ddlProvincia.SelectedValue + "00"; // debe de tomar la info de Depa y Prov
                        param.vID_TPROD = ID_TPROD;
                        param.vID_PROVEEDOR = 0;
                        param.vID_PRODUCTO = 0;
                    }

                    Lista = BL.PREC_PROV_PROD_BL.listaProveedor_PPP(param);
                    for (int i = 0; i < Lista.Count; i++)
                    {
                        EN.PROVEEDOR_EN obj = new EN.PROVEEDOR_EN();
                        obj.ID_PROVEEDOR = Lista[i].ID_PROVEEDOR;
                        obj.RAZON_SOC = Lista[i].RAZON_SOC;
                        Lista2.Add(obj);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return Lista2;
        }

        public void CrearTablaTemporal()
        {
            DataTable tbIngrediente = new DataTable("Ingrediente");
            tbIngrediente.Columns.Add("ID_TPROD", typeof(Int32));
            tbIngrediente.Columns.Add("ID_PRODUCTO", typeof(Int32));
            tbIngrediente.Columns.Add("ID_PROVEEDOR", typeof(Int32));
            tbIngrediente.Columns.Add("ID_PRECIO", typeof(Int32));
            tbIngrediente.Columns.Add("DESC_TPROD", typeof(string));
            tbIngrediente.Columns.Add("NOM_PROD", typeof(string));
            tbIngrediente.Columns.Add("PRECIO_CIGV", typeof(float));
            tbIngrediente.Columns.Add("PRECIO_CIGV_VIG", typeof(float));
            tbIngrediente.Columns.Add("ID_PROY_REC_ING", typeof(Int32));
            ViewState["Ingrediente"] = tbIngrediente;
        }

        public void validarSeleccion()
        {
            GridView gv = gvProducto;

            List<EN.PROYECTO_RECETA_INGREDIENTE_EN> lstparam = new List<EN.PROYECTO_RECETA_INGREDIENTE_EN>();

            foreach (GridViewRow row in gv.Rows)
            {
                EN.PROYECTO_RECETA_INGREDIENTE_EN param3 = new EN.PROYECTO_RECETA_INGREDIENTE_EN();
                param3.ID_RECETA = Int32.Parse(ddlReceta.SelectedValue);
                if (row.Cells[2].Text == "-2")
                {
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Popup", "alert('Debe de seleccionar un proveedor.');", true);
                    return;
                }
                param3.ID_PRODUCTO = decimal.Parse(row.Cells[1].Text);
                param3.ID_TPROD = decimal.Parse(row.Cells[0].Text);
                param3.ID_PROVEEDOR = decimal.Parse(row.Cells[2].Text);
                param3.ID_PRECIO = decimal.Parse(row.Cells[3].Text);
                param3.PRECIO_CIGV = decimal.Parse(row.Cells[7].Text);
                param3.PRECIO_CIGV_VIG = Convert.ToDecimal(0.00); //lstparam3[i].PRECIO_CIGV_VIG;
                lstparam.Add(param3);
            }
            try
            {
                int Id = 0;
                if (hdIDProy.Value == "0")
                {
                    EN.PROYECTO_EN param = new EN.PROYECTO_EN();
                    param.COD_DEPARTAMENTO = ddlDepartamento.SelectedValue;
                    param.COD_PROVINCIA = ddlProvincia.SelectedValue;
                    param.DESC_PROYECTO = "";
                    param.ID_CLIENTE = decimal.Parse(ddlCliente.SelectedValue);
                    param.ID_PROYECTO = 0;

                    EN.PARAM_PROYECTO_EN param2 = new EN.PARAM_PROYECTO_EN();
                    param2.ID_RECETA = Int32.Parse(ddlReceta.SelectedValue);
                    Id = BL.PROYECTO_BL.registroProyecto(param, param2, lstparam);
                    hdIDProy.Value = Id.ToString();
                    GenerarTabla();
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "mensaje", "alert('Se realizó el registro.');", true);
                }
                else
                {

                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void GenerarTabla()
        {
            lbTbCosto.Text = "";
            string lstUni = string.Empty;
            string lstComensal = string.Empty;
            int NroTabla = 0;
            string tabla = string.Empty;

            GridView gv = new GridView();
            gv = gvProducto;

            List<EN.ITEMS_EN> lista = new List<EN.ITEMS_EN>();
            lista = cargarUnidMedida();

            foreach (var item in lista)
            {
                lstUni = lstUni + "<option value=" + Convert.ToString(item.COD_ITEMS) + ">" + Convert.ToString(item.DESC_ITEMS) + "</option>";
            }

            List<EN.ITEMS_EN> listaComensal = new List<EN.ITEMS_EN>();
            listaComensal = cargarComensal();
            NroTabla = listaComensal.Count;

            foreach (var item in listaComensal)
            {
                lstComensal = lstComensal + Convert.ToString(item.DESC_ITEMS) + ",";
            }
            lstComensal = lstComensal.Substring(0, lstComensal.Length - 1);
            string[] comensal = lstComensal.Split(',');

            int NroFilas = gv.Rows.Count;
            for (int i = 0; i < NroTabla; i++)
            {
                tabla = tabla + "<table id='idTbCliente_" + i + "' style='width:350px;'>" +
                                           "<tr><td colspan='7' style='text-align:center; width:300px'>Cliente " + comensal[i] + "</td></tr>" +
                                           "<tr><td></td><td>Ingrediente</td><td>UM</td><td>%</td><td>CANT</td><td>Nº PAX</td><td>CANT</td><td>V.U</td><td>V.T</td></tr>";

                int j = 0;
                foreach (GridViewRow row in gv.Rows)
                {
                    string strID_PRODUCTO = row.Cells[1].Text;
                    string strID_ITEMS = row.Cells[4].Text;
                    string strNOM_PROD = row.Cells[5].Text;
                    string strPRECIO_CIGV = row.Cells[7].Text;

                    tabla = tabla +
                    "<tr>" +
                    "<td><input id='hdIdTipoProd1_" + i + "_" + j + "' type='hidden' value='" + strID_ITEMS + "' />" +
                    "<input id='hdIdProd1_" + i + "_" + j + "' type='hidden' value='" + strID_PRODUCTO + "' /></td>" +
                    "<td>" + strNOM_PROD + "</td>" +
                    "<td><select Id='select_" + i + "_" + j + "'>" + lstUni + "</select></td>" +
                    "<td><input id='Text1_" + i + "_" + j + "' type='text' style='width:50px' /></td>" +
                    "<td><input id='Text2_" + i + "_" + j + "' type='text' style='width:50px' class='alinearNumero' value='0'  onkeypress='javascript:return isNumeroDecimal(event);' onblur='Calculo(" + i + "," + j + ",0);' /></td>" +
                    "<td><input id='Text3_" + i + "_" + j + "' type='text' style='width:50px' class='alinearNumero' value='1' onkeypress='javascript:return isNumeroDecimal(event);' onblur='Calculo(" + i + "," + j + ",0);' /></td>" +
                    "<td><input id='Text4_" + i + "_" + j + "' type='text' style='width:50px' class='alinearNumero' value='0' disabled /></td>" +
                    "<td id='Text5_" + i + "_" + j + "' class='alinearNumero'>" + strPRECIO_CIGV + "</td>" +
                    "<td><input id='Text6_" + i + "_" + j + "' type='text' style='width:50px' class='alinearNumero' value='0' disabled /></td></tr>";
                    j++;
                }
                hdNroFila.Value = j.ToString();
                tabla = tabla + "<tr><td></td>" +
                "<td colspan='7' style='text-align:right'>Total :</td>" +
                "<td><input id='Text7_" + i + "' type='text'  style='width:50px'class='alinearNumero' value='0' disabled d/></td>" +
                "</tr></table>";
            }
            lbTbCosto.Text = tabla;
        }

        public void cargarProvinciaReg()
        {
            List<EN.UBIGEO_EN> lista = new List<EN.UBIGEO_EN>();
            EN.PARAM_UBIGEO_EN objItem = new EN.PARAM_UBIGEO_EN();
            objItem.NIVEL = 2;
            objItem.COD_UBIGEO = ddlDepRegistro.SelectedValue;

            lista = BL.ITEMS_BL.listaUbigeo(objItem);
            foreach (var item in lista)
            {
                ddlProRegistro.Items.Add(new ListItem(Convert.ToString(item.DESCRIPCION), Convert.ToString(item.COD_UBIGEO)));
            }
        }

        public List<EN.ITEMS_EN> cargarUnidMedida()
        {
            List<EN.ITEMS_EN> lista = new List<EN.ITEMS_EN>();
            EN.ITEMS_EN objItem = new EN.ITEMS_EN();
            objItem.ID_ITEMS = 0;
            objItem.DESC_ITEMS = "";
            objItem.ID_PADRE = UT.IdUndMed;
            lista = BL.ITEMS_BL.ListaITEMSGrupo(objItem);
            return lista;
        }

        public List<EN.ITEMS_EN> cargarComensal()
        {
            List<EN.ITEMS_EN> lista = new List<EN.ITEMS_EN>();
            EN.ITEMS_EN objItem = new EN.ITEMS_EN();
            objItem.ID_ITEMS = 0;
            objItem.DESC_ITEMS = "";
            objItem.ID_PADRE = UT.IdTipComensal;
            lista = BL.ITEMS_BL.ListaITEMSGrupo(objItem);
            return lista;
        }

        public void RegistrarCliente()
        {
            Int32 Id = 0;
            EN.CLIENTE_EN obj = new EN.CLIENTE_EN();
            obj.ID_CLIENTE = 0;
            obj.RUC = txtRUC.Text;
            obj.RAZON_SOCIAL = txtNombre.Text;
            if (ddlDepRegistro.SelectedValue != "-2" && ddlProRegistro.SelectedValue != "-2")
            {
                obj.UBIGEO = ddlDepRegistro.SelectedValue + ddlProRegistro.SelectedValue + "00";
            }
            else
            {
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Popup", "alert('Debe de seleccionar un departamento o provincia.');", true);
            }

            try
            {
                Id = BL.CLIENTE_BL.RegistroCliente(obj);
                ddlDepartamento.SelectedValue = ddlDepRegistro.SelectedValue;
                cargarProvincia();
                ddlProvincia.SelectedValue = ddlProRegistro.SelectedValue;
                ListaCliente();
                ddlCliente.SelectedValue = Id.ToString();
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Popup", "alert('Se realizó el registro.'); CerrarPopUp();", true);
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }


        public void MostrarPrecio(string IDProd, string IdProv)
        {
            EN.PARAM_PREC_PROV_PROD_EN param = new EN.PARAM_PREC_PROV_PROD_EN();
            List<EN.PREC_PROV_PROD_EN> Lista = new List<EN.PREC_PROV_PROD_EN>();
            param.vConsulta = 3;
            param.vCOD_UBIGEO = "0";
            param.vID_TPROD = 0;
            param.vID_PROVEEDOR = Convert.ToInt32(IdProv);
            param.vID_PRODUCTO = Convert.ToInt32(IDProd);
            try
            {
                Lista = BL.PREC_PROV_PROD_BL.listaPrecioProducto_PPP(param);

                foreach (var item in Lista)
                {
                    hdIdPrecio.Value = Convert.ToString(item.ID_PRECIO);
                    hdPrecio.Value = Convert.ToString(item.PRECIO_CIGV);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public void cargarRegistro()
        {
            EN.PARAM_PROYECTO_EN param = new EN.PARAM_PROYECTO_EN();
            List<EN.LST_PROYECTO_RECETA_EN> lista = new List<EN.LST_PROYECTO_RECETA_EN>();

            EN.PARAM_RECETA_EN paramReceta = new EN.PARAM_RECETA_EN();
            List<EN.LST_RECETA_EN> listaReceta = new List<EN.LST_RECETA_EN>();

            EN.PARAM_PROYECTO_EN paramLista = new EN.PARAM_PROYECTO_EN();
            List<EN.LST_PROYECTO_RECETA_INGREDIENTE_EN> LstProyRec = new List<EN.LST_PROYECTO_RECETA_INGREDIENTE_EN>();

            /*Informacion del proyecto*/
            param.COD_DEPARTAMENTO = "";
            param.COD_PROVINCIA = "";
            param.ID_CLIENTE = 0;
            param.ID_PROYECTO = decimal.Parse(hdIDProy.Value);
            lista = BL.PROYECTO_BL.listaProyReceta(param);
            ddlDepartamento.SelectedValue = lista[0].COD_DEPARTAMENTO;
            cargarProvincia();
            ddlProvincia.SelectedValue = lista[0].COD_PROVINCIA;
            ListaCliente();
            ddlCliente.SelectedValue = hdIDCliente.Value;

            /*Informacion de Receta*/
            paramReceta.ID_RECETA = Convert.ToDecimal(hdIDReceta.Value);
            paramReceta.NOMBRE_REC = "";
            paramReceta.TIPO_PLATO = -2;
            paramReceta.CLASE_PLATO = -2;

            listaReceta = BL.RECETA_BL.listaReceta(paramReceta);
            ddlTipo.SelectedValue = listaReceta[0].TIPO_PLATO.ToString();
            ddlClase.SelectedValue = listaReceta[0].CLASE_PLATO.ToString();
            ListaReceta();
            ddlReceta.SelectedValue = hdIDReceta.Value; //lista[0].ID_RECETA.ToString();


            paramLista.ID_PROYECTO = decimal.Parse(hdIDProy.Value);
            paramLista.ID_RECETA = decimal.Parse(hdIDReceta.Value);
            paramLista.ID_ITEM_PADRE_TPROD = 0;


            LstProyRec = BL.PROYECTO_BL.listaProyRecetaIngrediente(paramLista);
            if (LstProyRec.Count > 0)
            {
                gvProducto.DataSource = LstProyRec;
                gvProducto.DataBind();
                GenerarTabla();
            }
            else
            {
                ListaIngrediente();
               
            }
        }


        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ddlDepartamento.Items.Add(new ListItem(UT.desSeleccionar, UT.valSeleccionar));
                ddlProvincia.Items.Add(new ListItem(UT.desSeleccionar, UT.valSeleccionar));
                ddlTipo.Items.Add(new ListItem(UT.desSeleccionar, UT.valSeleccionar));
                ddlClase.Items.Add(new ListItem(UT.desSeleccionar, UT.valSeleccionar));
                ddlReceta.Items.Add(new ListItem(UT.desSeleccionar, UT.valSeleccionar));
                ddlDepRegistro.Items.Add(new ListItem(UT.desSeleccionar, UT.valSeleccionar));
                ddlProRegistro.Items.Add(new ListItem(UT.desSeleccionar, UT.valSeleccionar));
                ddlCliente.Items.Add(new ListItem(UT.desSeleccionar, UT.valSeleccionar));
                CrearTablaTemporal();
                cargarDepartamento();
                cargarTipoPlato();
                cargarClasePlato();
                ListaReceta();
                hdIDProy.Value = Request.QueryString["ID_Proy"];
                hdIDReceta.Value = Request.QueryString["ID_Receta"];
                hdIDCliente.Value = Request.QueryString["ID_Cliente"];

                if (hdIDProy.Value != "0")
                {
                    cargarRegistro();
                }
            }
        }

        protected void ddlDepartamento_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ddlDepartamento.SelectedValue != "-2")
            {
                ddlProvincia.Items.Clear();
                ddlProvincia.Items.Add(new ListItem(UT.desSeleccionar, UT.valSeleccionar));
                cargarProvincia();
            }
            else
            {
                ddlProvincia.Items.Clear();
                ddlProvincia.Items.Add(new ListItem(UT.desSeleccionar, UT.valSeleccionar));
            }
        }

        protected void ddlTipo_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ddlTipo.SelectedValue != "-2")
            {
                ddlReceta.Items.Clear();
                ddlReceta.Items.Add(new ListItem(UT.desSeleccionar, UT.valSeleccionar));
                ListaReceta();
            }
            else
            {
                ddlReceta.Items.Clear();
                ddlReceta.Items.Add(new ListItem(UT.desSeleccionar, UT.valSeleccionar));
                ListaReceta();
            }
        }

        protected void ddlClase_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ddlClase.SelectedValue != "-2")
            {
                ddlReceta.Items.Clear();
                ddlReceta.Items.Add(new ListItem(UT.desSeleccionar, UT.valSeleccionar));
                ListaReceta();
            }
            else
            {
                ddlReceta.Items.Clear();
                ddlReceta.Items.Add(new ListItem(UT.desSeleccionar, UT.valSeleccionar));
                ListaReceta();
            }
        }

        protected void ddlReceta_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ddlReceta.SelectedValue != "-2")
            {
                ListaIngrediente();
            }
        }

        protected void gvProducto_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            int ID_Tprod = 0;
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                ID_Tprod = Int32.Parse(e.Row.Cells[0].Text);
                DropDownList lstProveedor = e.Row.FindControl("ddlProveedor") as DropDownList;
                lstProveedor.Items.Add(new ListItem("--Seleccione--", "-2"));
                foreach (var item in cargarProvedor(ID_Tprod))
                {
                    lstProveedor.Items.Add(new ListItem(Convert.ToString(item.RAZON_SOC), Convert.ToString(item.ID_PROVEEDOR)));
                }
                if (hdIDProy.Value != "0")
                {
                    lstProveedor.SelectedValue = e.Row.Cells[2].Text;
                }
            }
        }

        protected void ddlProveedor_SelectedIndexChanged(object sender, EventArgs e)
        {
            string IDProd = "";

            DropDownList ddlProveedor = (DropDownList)sender;
            GridViewRow gvProductoRow = (GridViewRow)ddlProveedor.NamingContainer;
            Int32 rowindex = Convert.ToInt32(gvProductoRow.RowIndex);
            try
            {
                IDProd = gvProductoRow.Cells[1].Text;
                if (ddlProveedor.SelectedValue != "-2")
                {
                    string idProv = ddlProveedor.SelectedValue;
                    hdIdProv.Value = idProv;
                    MostrarPrecio(IDProd, idProv);
                    gvProductoRow.Cells[2].Text = hdIdProv.Value;
                    gvProductoRow.Cells[3].Text = hdIdPrecio.Value;
                    gvProductoRow.Cells[7].Text = hdPrecio.Value;
                    hdIdProv.Value = "-2";
                    hdIdPrecio.Value = "0";
                    hdPrecio.Value = "0.00";
                }
                else
                {
                    gvProductoRow.Cells[2].Text = hdIdProv.Value;
                    gvProductoRow.Cells[3].Text = hdIdPrecio.Value;
                    gvProductoRow.Cells[7].Text = hdPrecio.Value;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }


        protected void btnAddCliente_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Popup", "MostrarPopUp();", true);
        }

        protected void ddlDepRegistro_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ddlDepRegistro.SelectedValue != "-2")
            {
                ddlProRegistro.Items.Clear();
                ddlProRegistro.Items.Add(new ListItem(UT.desSeleccionar, UT.valSeleccionar));
                cargarProvinciaReg();
            }
            else
            {
                ddlProRegistro.Items.Clear();
                ddlProRegistro.Items.Add(new ListItem(UT.desSeleccionar, UT.valSeleccionar));
            }
        }

        protected void btnGrCliente_Click(object sender, EventArgs e)
        {
            RegistrarCliente();
        }

        protected void ddlProvincia_SelectedIndexChanged(object sender, EventArgs e)
        {
            ddlCliente.Items.Clear();
            ddlCliente.Items.Add(new ListItem(UT.desSeleccionar, UT.valSeleccionar));
            if (ddlProvincia.SelectedValue != "-2")
            {
                ListaCliente();
            }
        }

        protected void btnProyecto_Click(object sender, EventArgs e)
        {
            validarSeleccion();
        }
    }
}